package com.shop.service;

import com.github.pagehelper.PageInfo;
import com.shop.entity.Product;
import com.shop.vo.ProductAggregationVO;

public interface ProductService {
    /**
     * 分页查询商品
     * @param pageNum 当前页码
     * @param pageSize 每页数量
     * @return 分页数据
     */
    PageInfo<Product> listProduct(Integer pageNum, Integer pageSize);
    /**
     * 分页查询商品分类映射
     * @param pageNum 当前页码
     * @param pageSize 每页数量
     * @return 分页数据
     */
    PageInfo<Product> listProductCategoryMappings(Integer pageNum, Integer pageSize);

    PageInfo<ProductAggregationVO> listProductAggregation(int pageNum, int pageSize);

    PageInfo<ProductAggregationVO> listAllProduct();

    /**
     * 获取商品
     * @param id 商品ID
     * @return 商品
     */
    ProductAggregationVO getProductById(Integer id);
    /**
     * 添加商品
     * @param product 商品
     */
    Integer addProduct(Product product);
    /**
     * 删除商品
     * @param id 商品ID
     */
    void deleteProduct(Integer id);
    /**
     * 修改商品
     * @param product 商品
     */
    void updateProduct(Product product);
    /**
     * 获取商品总数
     * @return 商品总数
     */
    int getTotal();
}
